﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace Hue_Demo_PCL.Models
{
    /// <summary>
    /// serializable object representing the JSON result 
    ///  of the "state" value that comes back when querying
    ///  the state of a Hue light
    /// </summary>
    [DataContractAttribute]
    public class LightState
    {
        public LightState()
        {

        }

        #region IsOn Property (bool)
        private bool _isOn;
        [DataMember(Name = "on")]
        public bool IsOn
        {
            get { return _isOn; }
            set { _isOn = value; }
        }
        #endregion

        #region Brightness Property (int)
        private int _brightness;
        [DataMember(Name = "bri")]
        public int Brightness
        {
            get { return _brightness; }
            set { _brightness = value; }
        }
        #endregion

        #region Hue Property (int)
        private int _hue;
        [DataMember(Name = "hue")]
        public int Hue
        {
            get { return _hue; }
            set { _hue = value; }
        }
        #endregion

        #region Saturation Property (int)
        private int _saturation;
        [DataMember(Name = "sat")]
        public int Saturation
        {
            get { return _saturation; }
            set { _saturation = value; }
        }
        #endregion

        //#region XY Property (string)
        //private string _xy;
        //[DataMember(Name = "xy")]
        //public string XY
        //{
        //    get { return _xy; }
        //    set { _xy = value; }
        //}
        //#endregion

        #region CT Property (int)
        private int _ct;
        [DataMember(Name = "ct")]
        public int CT
        {
            get { return _ct; }
            set { _ct = value; }
        }
        #endregion

        #region Alert Property (string)
        private string _alert;
        [DataMember(Name = "alert")]
        public string Alert
        {
            get { return _alert; }
            set { _alert = value; }
        }
        #endregion

        #region Effect Property (string)
        private string _effect;
        [DataMember(Name = "effect")]
        public string Effect
        {
            get { return _effect; }
            set { _effect = value; }
        }
        #endregion

        #region ColorMode Property (string)
        private string _colorMode;
        [DataMember(Name = "hs")]
        public string ColorMode
        {
            get { return _colorMode; }
            set { _colorMode = value; }
        }
        #endregion

        #region IsReachable Property (bool)
        private bool _isReachable;
        [DataMember(Name = "reachable")]
        public bool IsReachable
        {
            get { return _isReachable; }
            set { _isReachable = value; }
        }
        #endregion




    }
}
